/**
 * 研发流程状态机日志组件
 * 用于显示研发项目状态变更的详细日志，包括操作人、操作内容、时间等
 */
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    // 流程历史记录
    flowHistory: {
      type: Array,
      value: []
    },
    
    // 当前项目ID
    projectId: {
      type: String,
      value: ''
    },
    
    // 是否显示全部详情
    showFullDetails: {
      type: Boolean,
      value: false
    },
    
    // 是否处于加载状态
    loading: {
      type: Boolean,
      value: false
    },
    
    // 加载错误信息
    error: {
      type: String,
      value: ''
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    // 展开的日志项ID列表
    expandedLogs: [],
    
    // 是否显示过滤选项
    showFilter: false,
    
    // 过滤条件
    filter: {
      operator: '',
      stateType: '', // 可选值：'all', 'main', 'active', 'sub'
      dateRange: [] // 起始时间和结束时间
    }
  },

  /**
   * 组件的方法列表
   */
  methods: {
    /**
     * 切换展开/折叠日志项
     * @param {Object} e 事件对象
     */
    toggleLogItem: function(e) {
      const logId = e.currentTarget.dataset.id;
      const expandedLogs = [...this.data.expandedLogs];
      
      const index = expandedLogs.indexOf(logId);
      if (index === -1) {
        // 未展开，添加到展开列表
        expandedLogs.push(logId);
      } else {
        // 已展开，从展开列表中移除
        expandedLogs.splice(index, 1);
      }
      
      this.setData({
        expandedLogs
      });
    },
    
    /**
     * 显示/隐藏过滤选项
     */
    toggleFilter: function() {
      this.setData({
        showFilter: !this.data.showFilter
      });
    },
    
    /**
     * 应用过滤条件
     * @param {Object} e 事件对象
     */
    applyFilter: function(e) {
      const filterData = e.detail.value;
      
      this.setData({
        'filter.operator': filterData.operator || '',
        'filter.stateType': filterData.stateType || 'all',
        showFilter: false
      });
      
      // 触发过滤事件
      this.triggerEvent('filter', this.data.filter);
    },
    
    /**
     * 清除过滤条件
     */
    clearFilter: function() {
      this.setData({
        filter: {
          operator: '',
          stateType: 'all',
          dateRange: []
        },
        showFilter: false
      });
      
      // 触发过滤事件
      this.triggerEvent('filter', this.data.filter);
    },
    
    /**
     * 刷新日志数据
     */
    refreshLogs: function() {
      this.triggerEvent('refresh');
    },
    
    /**
     * 查看相关文档
     * @param {Object} e 事件对象
     */
    viewRelatedDocument: function(e) {
      const docId = e.currentTarget.dataset.id;
      const url = e.currentTarget.dataset.url;
      
      // 触发文档查看事件
      this.triggerEvent('viewdoc', { docId, url });
    },
    
    /**
     * 设置日期范围
     * @param {Object} e 事件对象
     */
    setDateRange: function(e) {
      const dateRange = e.detail.value;
      
      this.setData({
        'filter.dateRange': dateRange
      });
    },
    
    /**
     * 导出日志
     */
    exportLogs: function() {
      // 触发导出事件
      this.triggerEvent('export');
    }
  }
}) 